home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Magazine / Morphos / GCC / ppc-amigaos / include / powerup / gcclib / powerup_protos.h
C/C++ Source or Header  |  2000-02-28  |  10KB  |  335 lines

  1. #ifndef POWERUP_GCCLIB_PROTOS_H
  2. #define POWERUP_GCCLIB_PROTOS_H
  3.  
  4. #include <dos/dos.h>
  5. #include <powerup/ppclib/interface.h>
  6. #include <powerup/ppclib/object.h>
  7. #include <utility/tagitem.h>
  8.  
  9. #ifndef  INTUITION_CLASSES_H
  10. #include <intuition/classes.h>
  11. #endif
  12. #ifndef  INTUITION_CLASSUSR_H
  13. #include <intuition/classusr.h>
  14. #endif
  15.  
  16. #include <stdarg.h>
  17.  
  18. #if defined(__cplusplus)
  19. extern "C" {
  20. #endif
  21.  
  22. APTR    PPCAllocMem( unsigned long byteSize, unsigned long requirements );
  23. void    PPCFreeMem( APTR memoryBlock, unsigned long byteSize );
  24. APTR    PPCAllocVec( unsigned long byteSize, unsigned long requirements );
  25. void    PPCFreeVec( APTR memoryBlock);
  26. BPTR    PPCOutput(void);
  27. BPTR    PPCInput(void);
  28. BPTR    PPCOpen( STRPTR name, long accessMode );
  29. LONG    PPCClose( BPTR file );
  30. LONG    PPCRead( BPTR file, APTR buffer, long length );
  31. LONG    PPCWrite( BPTR file, APTR buffer, long length );
  32. LONG    PPCSeek( BPTR file, long position, long offset );
  33. APTR    PPCCreatePool( unsigned long requirements, unsigned long puddleSize,
  34.     unsigned long threshSize );
  35. BOOL    PPCDeletePool( APTR poolHeader );
  36. APTR    PPCAllocPooled( APTR poolHeader, unsigned long memSize );
  37. void    PPCFreePooled( APTR poolHeader, APTR memory, unsigned long memSize );
  38. APTR    PPCAllocVecPooled( APTR poolHeader, unsigned long memSize );
  39. void    PPCFreeVecPooled( APTR poolHeader, APTR memory);
  40. ULONG    PPCCallOS(struct Caos*);
  41. ULONG    PPCCallM68k(struct Caos*);
  42. ULONG    PPCSignal(void*,ULONG);
  43. ULONG    PPCWait(ULONG);
  44. void    *PPCFindTask(char*);
  45. ULONG    PPCAllocSignal(ULONG);
  46. void    PPCFreeSignal(ULONG);
  47. void    PPCCacheFlush(APTR,ULONG);
  48. void    PPCCacheFlushAll(void);
  49. void    PPCCacheInvalid(APTR,ULONG);
  50. ULONG    PPCSetSignal(ULONG,ULONG);
  51. void    *PPCCreatePort(struct TagItem*);
  52. BOOL    PPCDeletePort(void*);
  53. void    *PPCObtainPort(struct TagItem*);
  54. BOOL    PPCReleasePort(void*);
  55. void    *PPCCreateMessage(void*,
  56.                          ULONG);
  57. void    PPCDeleteMessage(void*);
  58. void    *PPCGetMessage(void*);
  59. ULONG    PPCGetMessageAttr(void*,
  60.                           ULONG);
  61. BOOL    PPCReplyMessage(void*);
  62. BOOL    PPCSendMessage(void*,
  63.                        void*,
  64.                        void*,
  65.                        ULONG,
  66.                        ULONG);
  67. void    *PPCWaitPort(void*);
  68.  
  69. void*    PPCCreatePortList(void**,ULONG);
  70. void    PPCDeletePortList(void*);
  71. BOOL    PPCAddPortList(void*,
  72.                        void*);
  73. void    PPCRemPortList(void*,
  74.                        void*);
  75. void*    PPCWaitPortList(void*);
  76. ULONG    PPCGetPortListAttr(void*,
  77.                            ULONG);
  78. void    PPCSetPortListAttr(void*,
  79.                            ULONG,
  80.                            ULONG);
  81.  
  82. #if !defined(__SASC)
  83. int    strcmp(const char    *,
  84.                const char    *);
  85. char    *strcpy(char        *,
  86.                 const char    *);
  87. //int    strlen(const char    *);
  88. #endif
  89.  
  90.  
  91. /*
  92.  * List functions for not shared and shared lists
  93.  *
  94.  */
  95.  
  96. void        PPCInsert(struct List    *,
  97.                           struct Node    *,
  98.                           struct Node    *);
  99. void        PPCAddHead(struct List *,
  100.                            struct Node *);
  101. void        PPCAddTail(struct List *,
  102.                            struct Node *);
  103. void        PPCRemove(struct Node *);
  104. struct Node*    PPCRemHead(struct List *);
  105. struct Node*    PPCRemTail(struct List *);
  106. void        PPCEnqueue(struct List*,
  107.                            struct Node*);
  108. struct Node*    PPCFindName(struct List*,
  109.                             char*);
  110. void        PPCNewList(struct List *);
  111.  
  112.  
  113. void        PPCInsertSync(struct List    *,
  114.                               struct Node    *,
  115.                               struct Node    *);
  116. void        PPCAddHeadSync(struct List *,
  117.                                struct Node *);
  118. void        PPCAddTailSync(struct List *,
  119.                                struct Node *);
  120. void        PPCRemoveSync(struct Node *);
  121. struct Node*    PPCRemHeadSync(struct List *);
  122. struct Node*    PPCRemTailSync(struct List *);
  123. void        PPCEnqueueSync(struct List*,
  124.                                struct Node*);
  125. struct Node*    PPCFindNameSync(struct List*,
  126.                                 char*);
  127.  
  128. struct TagItem*    PPCNextTagItem(struct TagItem**);
  129. struct TagItem*    PPCFindTagItem(Tag,
  130.                                struct TagItem*);
  131. ULONG    PPCGetTagData(Tag,
  132.                       ULONG,
  133.                       struct TagItem *);
  134.  
  135. ULONG    PPCVersion(void);
  136. ULONG    PPCRevision(void);
  137.  
  138. void    PPCReleaseSemaphore(void*);
  139. void    PPCObtainSemaphore(void*);
  140. LONG    PPCAttemptSemaphore(void*);
  141. BOOL    PPCAttemptSemaphoreShared(void*);
  142. void    PPCObtainSemaphoreShared(void*);
  143. void*    PPCCreateSemaphore(struct TagItem*);
  144. void    PPCDeleteSemaphore(void*);
  145. void*    PPCObtainSemaphoreByName(char*);
  146. void*    PPCAttemptSemaphoreByName(char*,
  147.                                   ULONG*);
  148.  
  149. APTR    PPCRawDoFmt(UBYTE*,
  150.                     APTR,
  151.                     void (*)(),
  152.                     APTR);
  153.  
  154. ULONG    PPCGetTaskAttr(ULONG);
  155. void    PPCSetTaskAttr(ULONG,
  156.                        ULONG);
  157.  
  158. void    PPCFinishTask(void);
  159.  
  160. ULONG    PPCGetAttr(ULONG);
  161.  
  162. UBYTE    PPCReadByte(UBYTE*);
  163. UWORD    PPCReadWord(UWORD*);
  164. ULONG    PPCReadLong(ULONG*);
  165.  
  166. void    PPCWriteByte(UBYTE*,UBYTE);
  167. void    PPCWriteWord(UWORD*,UWORD);
  168. void    PPCWriteLong(ULONG*,ULONG);
  169.  
  170. ULONG    PPCCoerceMethodA(struct IClass*,
  171.                          Object*,
  172.                          Msg);
  173.  
  174. ULONG    PPCDoMethodA(Object*,
  175.                      Msg);
  176.  
  177. ULONG    PPCDoSuperMethodA(struct IClass*,
  178.                           Object*,
  179.                           void*);
  180.  
  181. void    PPCkprintf(const char*,
  182.                    ...);
  183.  
  184. int    PPCprintf(const char*,
  185.                   ...);
  186.  
  187. int    PPCsprintf(char*,
  188.                    const char*,
  189.                    ...);
  190.  
  191. void    PPCvkprintf(const char*,
  192.                     va_list);
  193.  
  194. int    PPCvprintf(const char*,
  195.                    va_list);
  196.  
  197. int    PPCvsprintf(char*,
  198.                     const char*,
  199.                     va_list);
  200.  
  201. int    PPCfprintf(BPTR,
  202.                    const char        *FmtString,
  203.                    ...);
  204.  
  205. int    PPCvfprintf(BPTR,
  206.                     const char*,
  207.                     va_list);
  208.  
  209. void    *PPCCreateTask(void*,
  210.                        void*,
  211.                        struct TagItem*);
  212.  
  213. void    *PPCOpenLibrary(void*,
  214.                         struct TagItem*);
  215.  
  216. void    PPCCloseLibrary(void*);
  217. void    *PPCGetLibSymbol(void*,
  218.                          char*);
  219.  
  220.  
  221. void    *PPCLoadObjectTagList(struct TagItem*);
  222. void    *PPCLoadObject(char*);
  223. void    PPCUnLoadObject(void*);
  224. ULONG    PPCGetObjectAttrs(void*,
  225.                           struct PPCObjectInfo*,
  226.                           struct TagItem*);
  227.  
  228. void*    PPCCreateTimerObject(struct TagItem*);
  229. void    PPCDeleteTimerObject(void*);
  230.  
  231. #if !defined(__SASC)
  232. void    PPCSetTimerObject(void*,
  233.                           ULONG,
  234.                           unsigned long long*);
  235.  
  236. void    PPCGetTimerObject(void*,
  237.                           ULONG,
  238.                           unsigned long long*);
  239. #else
  240. void    PPCSetTimerObject(void*,
  241.                           ULONG,
  242.                           ULONG*);
  243.  
  244. void    PPCGetTimerObject(void*,
  245.                           ULONG,
  246.                           ULONG*);
  247. #endif
  248.  
  249.  
  250. #if !defined(__SASC)
  251.  
  252. /* GCC 64bit math support
  253.  * which is needed by the compiler
  254.  */
  255.  
  256. int            __cmpdi2(long long, long long);
  257. long long        __adddi3(long long, long long);
  258. long long        __anddi3(long long, long long);
  259. long long        __ashldi3(long long, unsigned int);
  260. long long        __ashrdi3(long long, unsigned int);
  261. long long        __lshldi3(long long, unsigned int);
  262. long long        __lshrdi3(long long, unsigned int);
  263. int            __cmpdi2(long long, long long );
  264. long long        __divdi3(long long, long long);
  265. long long        __fixdfdi(double);
  266. long long        __fixsfdi(float);
  267. unsigned long long    __fixunsdfdi(double);
  268. unsigned long long    __fixunssfdi(float);
  269. double            __floatdidf(long long);
  270. float            __floatdisf(long long);
  271. double            __floatunsdidf(unsigned long long);
  272. long long        __iordi3(long long, long long);
  273. long long        __moddi3(long long, long long);
  274. long long        __muldi3(long long, long long);
  275. long long        __negdi2(long long);
  276. //long long        __one_cmpldi2(long long);
  277. unsigned long long    __qdivrem(unsigned long long, unsigned long long, unsigned long long *);
  278. long long        __subdi3(long long, long long);
  279. int            __ucmpdi2(unsigned long long, unsigned long long);
  280. unsigned long long    __udivdi3(unsigned long long, unsigned long long );
  281. unsigned long long    __umoddi3(unsigned long long, unsigned long long );
  282. long long        __xordi3(long long, long long);
  283.  
  284. long long    PPCAdd64(long long,long long);
  285. long long    PPCSub64(long long,long long);
  286. long long    PPCNeg64(long long);
  287. BOOL        PPCCmp64(long long,long long);
  288. long long    PPCMulu64(long long,long long);
  289. long long    PPCDivu64(long long,long long);
  290. long long    PPCMuls64(long long,long long);
  291. long long    PPCDivs64(long long,long long);
  292. long long    PPCModu64(long long,long long);
  293. long long    PPCMods64(long long,long long);
  294. long long    PPCLsr64(unsigned long long,unsigned int);
  295. long long    PPCAsl64(long long,unsigned int);
  296. long long    PPCAsr64(long long,unsigned int);
  297. long long    PPCLsr64(unsigned long long,unsigned int);
  298. long long    PPCOr64(unsigned long long,unsigned long long);
  299. long long    PPCXor64(unsigned long long,unsigned long long);
  300. long long    PPCAnd64(unsigned long long,unsigned long long);
  301. long long    PPCDivRem64(long long,long long,long long*);
  302.  
  303. #else
  304.  
  305. /* SAS 64bit support
  306.  * for every long long you get a ptr to a long long
  307.  */
  308. void        PPCAdd64p(int*,int*);
  309. void        PPCSub64p(int*,int*);
  310. void        PPCNeg64p(int*);
  311. BOOL        PPCCmp64p(int*,int*);
  312. void        PPCMulu64p(int*,int*);
  313. void        PPCDivu64p(int*,int*);
  314. void        PPCMuls64p(int*,int*);
  315. void        PPCDivs64p(int*,int*);
  316. void        PPCModu64p(int*,int*);
  317. void        PPCMods64p(int*,int*);
  318. void        PPCLsr64p(unsigned int*,unsigned int);
  319. void        PPCAsl64p(int*,unsigned int);
  320. void        PPCAsr64p(int*,unsigned int);
  321. void        PPCLsl64p(unsigned int*,unsigned int);
  322. void        PPCOr64p(unsigned int*,unsigned int*);
  323. void        PPCXor64p(unsigned int*,unsigned int*);
  324. void        PPCAnd64p(unsigned int*,unsigned int*);
  325.  
  326. void        PPCDivRem64p(int*,int*,int*);
  327.  
  328. #endif
  329.  
  330. #if defined(__cplusplus)
  331. }
  332. #endif
  333.  
  334. #endif
  335.